Software defined networking permits management of network services and network infrastructure using higher-level software systems by abstracting lower-level functionality. A centralized controller decouples the network infrastructure (also called the control plane), which governs how traffic is sent over the network, from the application systems, which govern where to send the traffic (also called the data plane).
An SDN based network architecture differs from traditional static networks in that SDN permits dynamic, scalable reconfiguration of network connections. This permits the control systems to programmatically reconfigure network connections to accommodate changing traffic patterns. However, one major problem with present SDN systems is the proliferation of underlying network controllers, which communicate with various ports and switches to control the flow of network traffic, each requiring customized control software to interface between the application in the data plane and the networking hardware in the control place.